#ifndef GAME_CONTROLLER_H
#define GAME_CONTROLLER_H

#include "Interface.h"

class GameController : public IGameController
{
public :
    
    GameController( void );
    ~GameController( void );

public : // IGameController implementation

    void Initialize( void );

    void Play( void );
    
    void Release( void );

private :

    enum EState {
        ES_NONE,
        ES_PLAYING,
        ES_GAME_OVER
    };

    inline bool IsGameOver( void );

    void Cleanup( void );

    static void Release( GameController * game );

    IBoard *  m_board;
    IPlayer * m_human;
    IPlayer * m_ai;
    EState    m_state;
};

#endif // GAME_CONTROLLER_H